1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Data;
5 using System.Drawing;
6 using System.Linq;
7 using System.Text;
8 using System.Threading.Tasks;
9 using System.Windows.Forms;
10
11 namespace SoftQuanLyNhaHang.Views
12 {
13 public partial class frmBanHang_Ck_Thue : Form
14 {
15 public frmBanHang_Ck_Thue()
16 {
17 InitializeComponent();
18 MinimizeBox = false;
19 }
20
21 private int _getIdKhachHang;
22
23 public frmBanHang_Ck_Thue(int _idKhachHang) : this()
24 {
25 _getIdKhachHang = _idKhachHang;
26 }
27
28 int idBanHangDgv = 0;
29 bool loadlandau = true;
30
31 private void frmBanHang_Ck_Thue_Load(object sender, EventArgs e)
32 {
33 //hien thi cmbthue
34 Dictionary<string, string> comboSource = new Dictionary<string, string>();
35 comboSource.Add("0", "0");
36 comboSource.Add("5", "5");
37 comboSource.Add("10", "10");
38 cmbThue.DataSource = new BindingSource(comboSource, null);
39 cmbThue.DisplayMember = "Value";
40 cmbThue.ValueMember = "Key";
41 //het hien thi combobox thue
42
43 //hien thi
44 this.HienThiDanhSachSanPhamTheoKhachHangTinhCkVaThue(_getIdKhachHang);
45 }
46
47 private void btnDong_Click(object sender, EventArgs e)
48 {
49 this.Close();
50
51
52 }
53
54 private void HienThiDanhSachSanPhamTheoKhachHangTinhCkVaThue(int idKhachHang)
55 {
56 dgvDsSpCkVaThue.Rows.Clear();
57 //Ẩn cột đầu tiên
58 dgvDsSpCkVaThue.RowHeadersVisible = false;
59 //-https://stackoverflow.com/questions/17404969/right-align-a-column-in-datagridview-doesnt-work
60 this.dgvDsSpCkVaThue.Columns["STT"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
61 this.dgvDsSpCkVaThue.Columns["STT"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
62 //this.dgvDanhSachNhapHang.Columns["STT"].SortMode = DataGridViewColumnSortMode.NotSortable;
63
64 this.dgvDsSpCkVaThue.Columns["SoLuong"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
65 this.dgvDsSpCkVaThue.Columns["SoLuong"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
66
67 this.dgvDsSpCkVaThue.Columns["GiaBan"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
68 this.dgvDsSpCkVaThue.Columns["GiaBan"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
69
70 this.dgvDsSpCkVaThue.Columns["ChietKhauPt"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
71 this.dgvDsSpCkVaThue.Columns["ChietKhauPt"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
72
73 //this.dgvDsSpCkVaThue.Columns["Thue"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
74 //this.dgvDsSpCkVaThue.Columns["Thue"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
75
76
77 this.dgvDsSpCkVaThue.Columns["TongTien"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
78 this.dgvDsSpCkVaThue.Columns["TongTien"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
79
80 DataTable dt = new DataTable();
81
82 //select từ bảng bán hàng
83 dt = Controllers.BanHangCtrl.FillDataSet_getBanHangByKhachHangId("", idKhachHang).Tables[0];
84 if (dt.Rows.Count > 0)
85 {
86
87 int _stt = 0;
88 //_tongSoBanGhi = Int32.Parse(dt.Rows[0]["TongSoBanGhi"].ToString());
89 double soluong = 0;
90 double giaban = 0;
91 double thanhtien = 0;
92 //int i = 0;
93 foreach (DataRow item in dt.Rows)
94 {
95 _stt += 1;
96 int n = dgvDsSpCkVaThue.Rows.Add();
97
98 dgvDsSpCkVaThue.Rows[n].Cells["IdBanHang"].Value = item["IdBanHang"].ToString();
99 dgvDsSpCkVaThue.Rows[n].Cells["STT"].Value = _stt.ToString();
100 dgvDsSpCkVaThue.Rows[n].Cells["MaSanPham"].Value = item["MaSanPham"].ToString();
101 dgvDsSpCkVaThue.Rows[n].Cells["TenSanPham"].Value = item["TenSanPham"].ToString();
102
103 dgvDsSpCkVaThue.Rows[n].Cells["TenDonViTinh"].Value = item["TenDonViTinh"].ToString();
104
105 soluong = CauHinhHeThong.Format_SoDeTinhToan(item["SoLuong"].ToString(),false);
106 giaban = CauHinhHeThong.Format_SoDeTinhToan(item["GiaBan"].ToString(),false);
107
108 dgvDsSpCkVaThue.Rows[n].Cells["SoLuong"].Value = CauHinhHeThong.Format_SoDeHienThi(soluong, false);
109
110 dgvDsSpCkVaThue.Rows[n].Cells["GiaBan"].Value = CauHinhHeThong.Format_SoDeHienThi(giaban, true);
111
112 //thanhtien = soluong * giaban;
113 dgvDsSpCkVaThue.Rows[n].Cells["ChietKhauPt"].Value = item["ChietKhauPhanTram"].ToString();
114
115 //dgvDsSpCkVaThue.Rows[n].Cells["Thue"].Value = item["Thue"].ToString();
116
117 thanhtien = CauHinhHeThong.Format_SoDeTinhToan(item["ThanhTien"].ToString(),false);
118 dgvDsSpCkVaThue.Rows[n].Cells["TongTien"].Value = CauHinhHeThong.Format_SoDeHienThi(thanhtien, true); ;// item["ThanhTien"].ToString();
119
120
121 //dgvDanhSachBanHang.Rows[n].Cells["Xoa"].Value = "false";
122
123
124 }
125 }
126
127 }
128
129 private void btnLuuVaThietLapTiep_Click(object sender, EventArgs e)
130 {
131 double chietkhau = 0;
132 double thueBanHang = 0;
133 double soluong = 0;
134 double giaban = 0;
135
136 double thanhTien = 0;
137
138 chietkhau = CauHinhHeThong.Format_SoDeTinhToan(txtChietKhau.Text.Trim(),true);
139
140 thueBanHang = Int32.Parse(cmbThue.SelectedValue.ToString());// CauHinhHeThong.Format_SoDeTinhToan(cmbThue.SelectedValue.ToString());
141
142 soluong = CauHinhHeThong.Format_SoDeTinhToan(txtSoLuong.Text.Trim(), true);
143
144 giaban = CauHinhHeThong.Format_SoDeTinhToan(txtGiaBan.Text.Trim(), true);
145
146 //thanh tien
147 //thanhTien = (soluong * giaban) - (soluong * giaban * chietkhau / 100) + (soluong * giaban * thueBanHang / 100);
148 thanhTien = CauHinhHeThong.BanHang_ThanhTien(giaban, soluong, thueBanHang, chietkhau);
149
150 //update vao csdl
151 Controllers.BanHangCtrl.UpdateBanHang_Thue_ChietKhau(idBanHangDgv, chietkhau, thueBanHang, thanhTien);
152
153 //Hiển thị lại ds
154 //this.HienThiDanhSachSanPhamTheoKhachHangTinhCkVaThue(_getIdKhachHang);
155
156 //gọi sang tab ds
157 //tabControlBanHangCk_Thue.SelectedTab = tabPageChietKhau;
158
159 //MessageBox.Show("Lưu thành công");
160
161 //đóng form
162 this.Close();
163 }
164
165 private void dgvDsSpCkVaThue_CellClick(object sender, DataGridViewCellEventArgs e)
166 {
167 //-https://stackoverflow.com/questions/1132471/how-to-reference-column-name-instead-of-e-columnindex-in-winform-datagridview-ev
168 if (dgvDsSpCkVaThue.Columns[e.ColumnIndex].Name == "Thue" && e.RowIndex != -1)
169 {
170 //-https://stackoverflow.com/questions/12762036/datagridview-cell-click-event
171 if (dgvDsSpCkVaThue.CurrentCell != null && dgvDsSpCkVaThue.CurrentCell.Value != null)
172 {
173 dgvDsSpCkVaThue.BeginEdit(true);
174 ComboBox cmb = (ComboBox)dgvDsSpCkVaThue.EditingControl;
175 cmb.DroppedDown = true;
176 }
177 }
178
179 //-https://stackoverflow.com/questions/1132471/how-to-reference-column-name-instead-of-e-columnindex-in-winform-datagridview-ev
180 if (dgvDsSpCkVaThue.Columns[e.ColumnIndex].Name == "ChietKhauPt" && e.RowIndex != -1)
181 {
182 //-https://stackoverflow.com/questions/12762036/datagridview-cell-click-event
183 if (dgvDsSpCkVaThue.CurrentCell != null && dgvDsSpCkVaThue.CurrentCell.Value != null)
184 {
185 dgvDsSpCkVaThue.BeginEdit(true);
186 TextBox txt = (TextBox)dgvDsSpCkVaThue.EditingControl;
187 //txt.
188 }
189 }
190
191
192 //-https://stackoverflow.com/questions/1132471/how-to-reference-column-name-instead-of-e-columnindex-in-winform-datagridview-ev
193 if (dgvDsSpCkVaThue.Columns[e.ColumnIndex].Name == "TenSanPham" && e.RowIndex != -1)
194 {
195 //-https://stackoverflow.com/questions/12762036/datagridview-cell-click-event
196 if (dgvDsSpCkVaThue.CurrentCell != null && dgvDsSpCkVaThue.CurrentCell.Value != null)
197 {
198 idBanHangDgv = 0;
199
200 idBanHangDgv = Int32.Parse(dgvDsSpCkVaThue.Rows[e.RowIndex].Cells["IdBanHang"].Value.ToString());
201
202 double giaban = 0;
203 double soluong = 0;
204 double thue = 0;
205 double chietkhauPt = 0;
206 double tongtien = 0;
207
208 txtTenSanPham.Text = dgvDsSpCkVaThue.Rows[e.RowIndex].Cells["TenSanPham"].Value.ToString();
209 txtMaSanPham.Text = dgvDsSpCkVaThue.Rows[e.RowIndex].Cells["MaSanPham"].Value.ToString();
210
211 giaban = CauHinhHeThong.Format_SoDeTinhToan(dgvDsSpCkVaThue.Rows[e.RowIndex].Cells["GiaBan"].Value.ToString(),true);
212
213 txtGiaBan.Text = CauHinhHeThong.Format_SoDeHienThi(giaban, true);
214
215 soluong = CauHinhHeThong.Format_SoDeTinhToan(dgvDsSpCkVaThue.Rows[e.RowIndex].Cells["SoLuong"].Value.ToString(), true);
216
217 //soluong khong phai dang tiền
218 txtSoLuong.Text = CauHinhHeThong.Format_SoDeHienThi(soluong, false);
219
220 txtDVTShowText.Text = dgvDsSpCkVaThue.Rows[e.RowIndex].Cells["TenDonViTinh"].Value.ToString();
221
222 chietkhauPt = CauHinhHeThong.Format_SoDeTinhToan(dgvDsSpCkVaThue.Rows[e.RowIndex].Cells["ChietKhauPt"].Value.ToString(), true);
223
224 txtChietKhau.Text = CauHinhHeThong.Format_SoDeHienThi(chietkhauPt, false);
225
226 thue = CauHinhHeThong.Format_SoDeTinhToan(dgvDsSpCkVaThue.Rows[e.RowIndex].Cells["Thue"].Value.ToString(), true);
227
228 cmbThue.SelectedValue = CauHinhHeThong.Format_SoDeHienThi(thue, false) ;
229
230 tongtien = CauHinhHeThong.BanHang_ThanhTien(giaban, soluong, thue, chietkhauPt);
231
232 txtTongTienShowText.Text = CauHinhHeThong.Format_SoDeHienThi(tongtien, true);
233
234
235 double tienchietkhau = 0;
236 tienchietkhau = soluong * giaban * chietkhauPt / 100;
237
238 txtChietKhauShowText.Text = CauHinhHeThong.Format_SoDeHienThi(tienchietkhau, true);
239
240 double tienthue = 0;
241 tienthue = soluong * giaban * thue / 100;
242
243 txtThueShowText.Text = CauHinhHeThong.Format_SoDeHienThi(tienthue, true);
244
245 //goi sang tab thue
246 tabControlBanHangCk_Thue.SelectedTab = tabPageChiTietThue;
247 }
248 }
249
250 }
251
252 private void btnLuuThayDoi_Click(object sender, EventArgs e)
253 {
254 int idBanHang = 0;
255 double chietkhau = 0;
256 double thueBanHang = 0;
257 double soluong = 0;
258 double giaban = 0;
259
260 double thanhTien = 0;
261
262
263 foreach (DataGridViewRow dataRow in dgvDsSpCkVaThue.Rows)
264 {
265 if (dataRow.Cells["IdBanHang"].Value != null)
266 {
267 idBanHang = Int32.Parse(dataRow.Cells["IdBanHang"].Value.ToString());
268
269 chietkhau = CauHinhHeThong.Format_SoDeTinhToan(dataRow.Cells["ChietKhauPt"].Value.ToString(),true);
270
271 thueBanHang = CauHinhHeThong.Format_SoDeTinhToan(dataRow.Cells["Thue"].Value.ToString(), true);
272
273 soluong = CauHinhHeThong.Format_SoDeTinhToan(dataRow.Cells["SoLuong"].Value.ToString(), true);
274
275 giaban = CauHinhHeThong.Format_SoDeTinhToan(dataRow.Cells["GiaBan"].Value.ToString(), true);
276
277 //thanh tien
278 //thanhTien = (soluong * giaban) - (soluong * giaban * chietkhau / 100) + (soluong * giaban * thueBanHang / 100);
279 thanhTien = CauHinhHeThong.BanHang_ThanhTien(giaban, soluong, thueBanHang, chietkhau);
280 //update vao csdl
281 Controllers.BanHangCtrl.UpdateBanHang_Thue_ChietKhau(idBanHang, chietkhau, thueBanHang, thanhTien);
282 }
283 }//end foreach
284
285
286 //MessageBox.Show("Lưu thành công");
287
288 //hien thi lai danh sach san pham
289 //this.HienThiDanhSachSanPhamTheoKhachHangTinhCkVaThue(_getIdKhachHang);
290
291 //đóng form
292 this.Close();
293 }
294
295 private void txtChietKhau_TextChanged(object sender, EventArgs e)
296 {
297 if (loadlandau == true) { return; }
298
299
300 try
301 {
302 string value = txtChietKhau.Text.Replace(CauHinhHeThong.PHAN_CACH_HANG_NGHIN, "");
303 ulong ul = 0;
304
305 if (ulong.TryParse(value, out ul))
306 {
307 txtChietKhau.TextChanged -= txtChietKhau_TextChanged;
308
309 if (txtChietKhau.Text.StartsWith("0"))
310 {
311 txtChietKhau.Text = ul.ToString();
312 }
313 else
314 {
315 txtChietKhau.Text = CauHinhHeThong.DoFormat_NhapSoTrongText(value);
316 }
317
318 txtChietKhau.SelectionStart = txtChietKhau.Text.Length;
319 txtChietKhau.TextChanged += txtChietKhau_TextChanged;
320 }
321 else
322 {
323 if (txtChietKhau.Text.StartsWith(CauHinhHeThong.DAU_PHAY))
324 {
325 txtChietKhau.TextChanged -= txtChietKhau_TextChanged;
326 txtChietKhau.Text = "0" + txtChietKhau.Text;
327 txtChietKhau.SelectionStart = txtChietKhau.Text.Length;
328 txtChietKhau.TextChanged += txtChietKhau_TextChanged;
329 }
330 }
331
332 double chietkhau = 0;
333 double thueBanHang = 0;
334 double soluong = 0;
335 double giaban = 0;
336
337 double thanhTien = 0;
338
339 giaban = CauHinhHeThong.Format_SoDeTinhToan(txtGiaBan.Text.Trim(),true);
340 soluong = CauHinhHeThong.Format_SoDeTinhToan(txtSoLuong.Text.Trim(), true);
341
342 thueBanHang = Int32.Parse(cmbThue.SelectedValue.ToString());
343 chietkhau = CauHinhHeThong.Format_SoDeTinhToan(txtChietKhau.Text.Trim(), true);
344
345 double tienchietkhau = 0;
346 tienchietkhau = giaban * soluong * chietkhau / 100;
347 txtChietKhauShowText.Text = CauHinhHeThong.Format_SoDeHienThi(tienchietkhau, true);
348
349 double tienthue = 0;
350 tienthue = giaban * soluong * thueBanHang / 100;
351 txtThueShowText.Text = CauHinhHeThong.Format_SoDeHienThi(tienthue, true);
352
353 thanhTien = CauHinhHeThong.BanHang_ThanhTien(giaban, soluong, thueBanHang, chietkhau);
354 txtTongTienShowText.Text = CauHinhHeThong.Format_SoDeHienThi(thanhTien, true);
355
356 }
357 catch
358 {
359 }
360 }
361
362 private void txtChietKhau_MouseCaptureChanged(object sender, EventArgs e)
363 {
364 loadlandau = false;
365 }
366
367 private void txtChietKhau_KeyDown(object sender, KeyEventArgs e)
368 {
369
370 }
371
372 private void txtChietKhau_KeyPress(object sender, KeyPressEventArgs e)
373 {
374 CauHinhHeThong.NhapSoTrongTextBox(sender, e);
375 }
376
377 private void txtChietKhau_Click(object sender, EventArgs e)
378 {
379 loadlandau = false;
380 }
381
382
383
384 private void cmbThue_SelectionChangeCommitted(object sender, EventArgs e)
385 {
386 //MessageBox.Show(cmbThue.SelectedValue.ToString());
387 double chietkhau = 0;
388 double thueBanHang = 0;
389 double soluong = 0;
390 double giaban = 0;
391
392 double thanhTien = 0;
393
394 giaban = CauHinhHeThong.Format_SoDeTinhToan(txtGiaBan.Text.Trim(), true);
395 soluong = CauHinhHeThong.Format_SoDeTinhToan(txtSoLuong.Text.Trim(), true);
396
397 thueBanHang = Int32.Parse(cmbThue.SelectedValue.ToString());
398 chietkhau = CauHinhHeThong.Format_SoDeTinhToan(txtChietKhau.Text.Trim(), true);
399
400 double tienchietkhau = 0;
401 tienchietkhau = giaban * soluong * chietkhau / 100;
402 txtChietKhauShowText.Text = CauHinhHeThong.Format_SoDeHienThi(tienchietkhau, true);
403
404 double tienthue = 0;
405 tienthue = giaban * soluong * thueBanHang / 100;
406 txtThueShowText.Text = CauHinhHeThong.Format_SoDeHienThi(tienthue, true);
407
408 thanhTien = CauHinhHeThong.BanHang_ThanhTien(giaban, soluong, thueBanHang, chietkhau);
409 txtTongTienShowText.Text = CauHinhHeThong.Format_SoDeHienThi(thanhTien, true);
410 }
411 }
412 }